package cn.com.git.example.module.service;

import cn.com.git.example.common.auth.LoginProcessDTO;
import cn.com.git.example.common.auth.LoginStatusDTO;

/**
 *
 * 鉴权缓存
 * @author zhangzhenfu
 * @Description
 * @date 2021/3/31 10:58
 */
public interface AuthenticationCacheService {

    /*============================================*/
    /*=================登录过程===================*/
    /*============================================*/

    /**
     * 获取 登录过程
     *
     * @param sessionId
     * @return
     */
    LoginProcessDTO getLoginProcess(String sessionId);

    /**
     * 设置 登录过程
     *
     * @param sessionId
     * @param loginProcess
     */
    void setLoginProcess(String sessionId, LoginProcessDTO loginProcess);

    /**
     * 修改 登录过程
     *
     * @param sessionId
     * @param loginProcess
     */
    void modifyLoginProcess(String sessionId, LoginProcessDTO loginProcess);

    /**
     * 移除 登录过程
     *
     * @param sessionId
     */
    void removeLoginProcess(String sessionId);

    /*============================================*/
    /*=================登录状态===================*/
    /*============================================*/
    /**
     * 获取 登录状态
     *
     * @param account
     * @return
     */
    LoginStatusDTO getLoginStatus(String account);

    /**
     * 设置 登录状态
     *
     * @param account
     * @param loginStatus
     */
    void setLoginStatus(String account, LoginStatusDTO loginStatus);
    /**
     * 修改 登录状态
     *
     * @param account
     * @param loginStatus
     */
    void modifyLoginStatus(String account, LoginStatusDTO loginStatus);
    /**
     * 移除 登录状态
     *
     * @param account
     */
    void removeLoginStatus(String account);
}
